#include "IniciarJuego.h"

IniciarJuego::IniciarJuego(QWidget *parent){
    setupUi();
    padre=parent;
    txtNombres[0]=txtNombre;
    txtNombres[1]=txtNombre_2;
    txtNombres[2]=txtNombre_3;
    txtNombres[3]=txtNombre_4;
    txtNombres[4]=txtNombre_5;
    txtNombres[5]=txtNombre_6;
    btnColores[0]=btnColor;
    btnColores[1]=btnColor_2;
    btnColores[2]=btnColor_3;
    btnColores[3]=btnColor_4;
    btnColores[4]=btnColor_5;
    btnColores[5]=btnColor_6;
    for(int i=0;i<6;i++)
        connect(btnColores[i],SIGNAL(clicked()),this,SLOT(seleccionarColor()));
    spinBox->setMaximum(6);
    spinBox->setMinimum(2);
    
    seleccionarNumero(2);
    
    connect(spinBox,SIGNAL(valueChanged(int)),this,SLOT(seleccionarNumero(int)));
    connect(btnComenzar,SIGNAL(clicked()),this,SLOT(comenzar()));
    connect(btnCancelar,SIGNAL(clicked()),this,SLOT(cancelar()));
}

void IniciarJuego::comenzar(){
    for(int i=0;i<nJugadores;i++){
        nombres[i]=txtNombres[i]->text();
	colores[i]=btnColores[i]->palette().color(QPalette::Button);
    }
    Juego *frmJuego = new Juego(0,nJugadores,nombres,colores,padre);
    frmJuego->show();
    close();
}
void IniciarJuego::cancelar(){
    padre->show();
    close();
}
void IniciarJuego::seleccionarNumero(int value){
    nJugadores=value;
    for(int i=0;i<6;i++){
        txtNombres[i]->setEnabled(false);
        btnColores[i]->setEnabled(false);
    }
    for(int i=0;i<nJugadores;i++){
        txtNombres[i]->setEnabled(true);
        btnColores[i]->setEnabled(true);
    }
}
void IniciarJuego::seleccionarColor(){
    int i;
    bool repetido;
    for(i=0;;i++)
        if((QPushButton *) sender()==btnColores[i])
            break;
    do{
        btnColores[i]->setPalette(QColorDialog::getColor());
        repetido=false;
        for(int j=0;j<nJugadores;j++)
            if(j!=i && btnColores[i]->palette().color(QPalette::Button)==btnColores[j]->palette().color(QPalette::Button)){
                repetido=true;
                QMessageBox::information(this,QString("Color repetido"),QString("No puede seleccionar un color que ya ha sido asignado a otro jugador"),QMessageBox::AcceptRole);
                break;
            }
    }while(repetido);     
}
void IniciarJuego::setupUi(){
    resize(313, 375);
    setWindowTitle(QString("Iniciar juego"));
    
    QFont font;
    font.setPointSize(10);
    font.setBold(false);
    font.setWeight(50);
    
    label = new QLabel(this);
    label->setGeometry(QRect(50, 15, 139, 26));
    label->setFont(font);
    label->setText(QString("Numero de jugadores"));
    
    spinBox = new QSpinBox(this);
    spinBox->setGeometry(QRect(205, 15, 54, 23));
    spinBox->setValue(2);
        
    groupBox = new QGroupBox(this);
    groupBox->setGeometry(QRect(5, 50, 301, 286));
    groupBox->setTitle(QString("Jugadores"));
    
    label_2 = new QLabel(groupBox);
    label_2->setGeometry(QRect(10, 25, 57, 18));
    label_2->setText(QString("Nombre"));
    
    label_3 = new QLabel(groupBox);
    label_3->setGeometry(QRect(210, 25, 57, 18));
    label_3->setText(QString("Color"));
    
    txtNombre = new QLineEdit(groupBox);
    txtNombre->setEnabled(true);
    txtNombre->setGeometry(QRect(10, 45, 191, 31));
    txtNombre->setText(QString("Bob"));
    
    txtNombre_2 = new QLineEdit(groupBox);
    txtNombre_2->setEnabled(true);
    txtNombre_2->setGeometry(QRect(10, 85, 191, 31));
    txtNombre_2->setText(QString("Mike"));
    
    txtNombre_3 = new QLineEdit(groupBox);
    txtNombre_3->setEnabled(false);
    txtNombre_3->setGeometry(QRect(10, 125, 191, 31));
    txtNombre_3->setText(QString("Steve"));
    
    txtNombre_4 = new QLineEdit(groupBox);
    txtNombre_4->setEnabled(false);
    txtNombre_4->setGeometry(QRect(10, 165, 191, 31));
    txtNombre_4->setText(QString("Jack"));
    
    txtNombre_5 = new QLineEdit(groupBox);
    txtNombre_5->setEnabled(false);
    txtNombre_5->setGeometry(QRect(10, 205, 191, 31));
    txtNombre_5->setText(QString("John"));
    
    txtNombre_6 = new QLineEdit(groupBox);
    txtNombre_6->setEnabled(false);
    txtNombre_6->setGeometry(QRect(10, 245, 191, 31));
    txtNombre_6->setText(QString("Tom"));
    
    btnColor = new QPushButton(groupBox);
    btnColor->setEnabled(true);
    btnColor->setGeometry(QRect(210, 45, 83, 31));
    QPalette palette;
    QBrush brush5(QColor(0, 0, 255, 255));
    brush5.setStyle(Qt::SolidPattern);
    palette.setBrush(QPalette::Active, QPalette::Button, brush5);
    palette.setBrush(QPalette::Inactive, QPalette::Button, brush5);
    palette.setBrush(QPalette::Disabled, QPalette::Button, brush5);
    btnColor->setPalette(palette);
    btnColor->setText(QString("Cambiar"));
            
    btnColor_2 = new QPushButton(groupBox);
    btnColor_2->setEnabled(true);
    btnColor_2->setGeometry(QRect(210, 85, 83, 31));
    QPalette palette_2;
    QBrush brush(QColor(255, 0, 0, 255));
    brush.setStyle(Qt::SolidPattern);
    palette_2.setBrush(QPalette::Active, QPalette::Button, brush);
    palette_2.setBrush(QPalette::Inactive, QPalette::Button, brush);
    palette_2.setBrush(QPalette::Disabled, QPalette::Button, brush);
    btnColor_2->setPalette(palette_2);
    btnColor_2->setText(QString("Cambiar"));
    
    btnColor_3 = new QPushButton(groupBox);
    btnColor_3->setEnabled(false);
    btnColor_3->setGeometry(QRect(210, 125, 83, 31));
    QPalette palette_3;
    QBrush brush1(QColor(0, 255, 0, 255));
    brush1.setStyle(Qt::SolidPattern);
    palette_3.setBrush(QPalette::Active, QPalette::Button, brush1);
    palette_3.setBrush(QPalette::Inactive, QPalette::Button, brush1);
    palette_3.setBrush(QPalette::Disabled, QPalette::Button, brush1);
    btnColor_3->setPalette(palette_3);
    btnColor_3->setText(QString("Cambiar"));
    
    btnColor_4 = new QPushButton(groupBox);
    btnColor_4->setEnabled(false);
    btnColor_4->setGeometry(QRect(210, 165, 83, 31));
    QPalette palette_4;
    QBrush brush4(QColor(255, 255, 0, 255));
    brush4.setStyle(Qt::SolidPattern);
    palette_4.setBrush(QPalette::Active, QPalette::Button, brush4);
    palette_4.setBrush(QPalette::Inactive, QPalette::Button, brush4);
    palette_4.setBrush(QPalette::Disabled, QPalette::Button, brush4);
    btnColor_4->setPalette(palette_4);    
    btnColor_4->setText(QString("Cambiar"));
    
    btnColor_5 = new QPushButton(groupBox);
    btnColor_5->setEnabled(false);
    btnColor_5->setGeometry(QRect(210, 205, 83, 31));
    QPalette palette_5;
    QBrush brush2(QColor(0, 255, 255, 255));
    brush2.setStyle(Qt::SolidPattern);
    palette_5.setBrush(QPalette::Active, QPalette::Button, brush2);
    palette_5.setBrush(QPalette::Inactive, QPalette::Button, brush2);
    palette_5.setBrush(QPalette::Disabled, QPalette::Button, brush2);
    btnColor_5->setPalette(palette_5);
    btnColor_5->setText(QString("Cambiar"));
    
    btnColor_6 = new QPushButton(groupBox);
    btnColor_6->setEnabled(false);
    btnColor_6->setGeometry(QRect(210, 245, 83, 31));
    QPalette palette_6;
    QBrush brush3(QColor(170, 0, 255, 255));
    brush3.setStyle(Qt::SolidPattern);
    palette_6.setBrush(QPalette::Active, QPalette::Button, brush3);
    palette_6.setBrush(QPalette::Inactive, QPalette::Button, brush3);
    palette_6.setBrush(QPalette::Disabled, QPalette::Button, brush3);
    btnColor_6->setPalette(palette_6);
    btnColor_6->setText(QString("Cambiar"));
    
    btnComenzar = new QPushButton(this);
    btnComenzar->setGeometry(QRect(220, 345, 83, 27));
    btnComenzar->setText(QString("Comenzar"));
    
    btnCancelar = new QPushButton(this);
    btnCancelar->setGeometry(QRect(130, 345, 83, 27));
    btnCancelar->setText(QString("Cancelar"));
}
